﻿namespace Phoenix.Xna.Framework.Input.Binding
{
    /// <summary>
    /// Defines the interface for InputBinding instances.
    /// </summary>
    public interface IInputBinding
    {
        /// <summary>
        /// Gets or sets the type of device this binding is bound to.
        /// </summary>
        DeviceType DeviceType { get; set; }

        /// <summary>
        /// Gets or sets the sub type of device such as keys or buttons this binding is bound to.
        /// </summary>
        DeviceSubType SubDeviceType { get; set; }

        /// <summary>
        /// Gets or sets the action identifier associated with this binding.
        /// </summary>
        string Action { get; set; }

        /// <summary>
        /// Determines if the specified action is the same as the action associated with this binding.
        /// </summary>
        /// <param name="action">The action to compare.</param>
        /// <returns>True if equal, otherwise false.</returns>
        bool IsAction(string action);
    }
}
